﻿using System;
using System.Data;
using System.Web;
using HtmlAgilityPack;

namespace WEATHER.Components
{
    public partial class Area
    {

        public static string GetWeatherOffline(Guid moduleID, ref DateTime recent)
        {
            string result = "Không lấy được dữ liệu";
            recent = new DateTime(1900, 1, 1);
            //Lấy dữ liệu từ database
            DataSet ds = Item.SelectTopBy_WeatherType(moduleID, "AreaWeather", 1);
            if (ds.Tables[0].Rows.Count > 0)
            {
                result = ds.Tables[0].Rows[0]["HtmlContent"].ToString();
                recent = DateTime.Parse(ds.Tables[0].Rows[0]["CreatedDate"].ToString());
            }
            return result;
        }

        public static string GetWeatherOnline(Guid moduleID)
        {
            //Lấy dữ liệu từ database
            DateTime recent = new DateTime(1900,1,1);
            string htmlContent = GetWeatherOffline(moduleID, ref recent);
            DateTime now = DateTime.Now;
            TimeSpan ts = now.Subtract(recent);
            if (ts.TotalMinutes >= 60)
            {
                try
                {
                    //Lấy dữ liệu từ website: http://www.nchmf.gov.vn/
                    HtmlWeb hw = new HtmlWeb();
                    HtmlDocument doc = hw.Load("http://www.nchmf.gov.vn/website/vi-VN/43/Default.aspx");
                    HtmlNodeCollection nc = doc.DocumentNode.SelectNodes("//*[@id='_ctl1__ctl4__ctl0_dl_Bantindubao']");
                    string result = HttpUtility.HtmlEncode(nc[0].OuterHtml);
                    // Lưu vào database 
                    if (htmlContent != result)
                    {
                        Item item = new Item();
                        item.ModuleID = moduleID;
                        item.Title = "Thời tiết các vùng";
                        item.SubTitle = "";
                        item.WeatherType = "AreaWeather";
                        item.HtmlContent = result;
                        item.CreatedDate = DateTime.Now;
                        item.CreatedBy = "weather@asp.net.vn";
                        item.Insert();
                        htmlContent = result;
                    }
                }
                catch (Exception)
                {
                }
            }
            return htmlContent;
        }
    }
}

